10.3. Example: time range limited retrieval
This example shows the time-range limited retrieval from a calendar which results in 2 events, one a recurring event and one a simple non-recurring event.
>> Request <<
POST /user/fred/calendar/ HTTP/1.1
Host: calWS.example.com
Depth: 1
Content-Type: application/xml; charset="utf-8"
Content-Length: xxxx
<?xml version="1.0" encoding="utf-8" ?>
<C:calendar-query xmlns:D="DAV:"
xmlns:C="urn:ietf:params:xml:ns:caldav">
<D:prop>
<D:getetag/>
<C:calendar-data content-type="application/xml+calendar" >
<C:comp name="VCALENDAR">
<C:prop name="VERSION"/>
<C:comp name="VEVENT">
<C:prop name="SUMMARY"/>
<C:prop name="UID"/>
<C:prop name="DTSTART"/>
<C:prop name="DTEND"/>
<C:prop name="DURATION"/>
<C:prop name="RRULE"/>
<C:prop name="RDATE"/>
<C:prop name="EXRULE"/>
<C:prop name="EXDATE"/>
<C:prop name="RECURRENCE-ID"/>
</C:comp>
</C:comp>
</C:calendar-data>
</D:prop>
<C:filter>
<C:comp-filter name="VCALENDAR">
<C:comp-filter name="VEVENT">
<C:time-range start="20060104T000000Z"
end="20060105T000000Z"/>
</C:comp-filter>
</C:comp-filter>
</C:filter>
</C:calendar-query>
>> Response <<
HTTP/1.1 207 Multi-Status
Date: Sat, 11 Nov 2006 09:32:12 GMT
Content-Type: application/xml; charset="utf-8"
Content-Length: xxxx
<?xml version="1.0" encoding="utf-8" ?>
<D:multistatus xmlns:D="DAV:"
xmlns:C="urn:ietf:params:xml:ns:caldav">
<D:response>
<D:href>http://cal.example.com/bernard/work/abcd2.ics</D:href>
<D:propstat>
<D:prop>
<D:getetag>"fffff-abcd2"</D:getetag>
<C:calendar-data content-type="application/xml+calendar" >
<xc:icalendar
xmlns:xc="urn:ietf:params:xml:ns:icalendar-2.0">
<xc:vcalendar>
<xc:properties>
<xc:calscale><text>GREGORIAN</text></xc:calscale>
<xc:prodid>
<xc:text>-//Example Inc.//Example Calendar//EN</xc:text>
</xc:prodid>
<xc:version><xc:text>2.0</xc:text></xc:version>
</xc:properties>
<xc:components>
<xc:vevent>
<xc:properties>
<xc:dtstart>
<xc:parameters>
<xc:tzid>US/Eastern<xc:tzid>
<xc:parameters>
<xc:date-time>20060102T120000</xc:date-time>
</xc:dtstart>
<xc:duration><xc:duration>PT1H</xc:duration></xc:duration>
<xc:summary>
<xc:text>Event #2</xc:text>
</xc:summary>
<xc:uid>
<xc:text>00959BC664CA650E933C892C@example.com</xc:text>
</xc:uid>
<xc:rrule>
<xc:recur>
<xc:freq>DAILY</xc:freq>
<xc:count>5</xc:count>
</xc:recur>
</xc:rrule>
</xc:properties>
</xc:vevent>
<xc:vevent>
<xc:properties>
<xc:dtstart>
<xc:parameters>
<xc:tzid>US/Eastern<xc:tzid>
<xc:parameters>
<xc:date-time>20060104T140000</xc:date-time>
</xc:dtstart>
<xc:duration><xc:duration>PT1H</xc:duration></xc:duration>
<xc:summary>
<xc:text>Event #2 bis</xc:text>
</xc:summary>
<xc:uid>
<xc:text>00959BC664CA650E933C892C@example.com</xc:text>
</xc:uid>
<xc:recurrence-id>
<xc:parameters>
<xc:tzid>US/Eastern<xc:tzid>
<xc:parameters>
<xc:date-time>20060104T120000</xc:date-time>
</xc:recurrence-id>
<xc:rrule>
<xc:recur>
<xc:freq>DAILY</xc:freq>
<xc:count>5</xc:count>
</xc:recur>
</xc:rrule>
</xc:properties>
</xc:vevent>
<xc:vevent>
<xc:properties>
<xc:dtstart>
<xc:parameters>
<xc:tzid>US/Eastern<xc:tzid>
<xc:parameters>
<xc:date-time>20060106T140000</xc:date-time>
</xc:dtstart>
<xc:duration><xc:duration>PT1H</xc:duration></xc:duration>
<xc:summary>
<xc:text>Event #2 bis bis</xc:text>
</xc:summary>
<xc:uid>
<xc:text>00959BC664CA650E933C892C@example.com</xc:text>
</xc:uid>
<xc:recurrence-id>
<xc:parameters>
<xc:tzid>US/Eastern<xc:tzid>
<xc:parameters>
<xc:date-time>20060106T120000</xc:date-time>
</xc:recurrence-id>
<xc:rrule>
<xc:recur>
<xc:freq>DAILY</xc:freq>
<xc:count>5</xc:count>
</xc:recur>
</xc:rrule>
</xc:properties>
</xc:vevent>
</xc:components>
</xc:vcalendar>
</xc:icalendar>
</C:calendar-data>
</D:prop>
<D:status>HTTP/1.1 200 OK</D:status>
</D:propstat>
</D:response>
<D:response>
<D:href>http://cal.example.com/bernard/work/abcd3.ics</D:href>
<D:propstat>
<D:prop>
<D:getetag>"fffff-abcd3"</D:getetag>
<C:calendar-data content-type="application/xml+calendar" >
<xcal:icalendar
xmlns:xc="urn:ietf:params:xml:ns:icalendar-2.0">
<xc:vcalendar>
<xc:properties>
<xc:calscale><text>GREGORIAN</text></xc:calscale>
<xc:prodid>
<xc:text>-//Example Inc.//Example Calendar//EN</xc:text>
</xc:prodid>
<xc:version><xc:text>2.0</xc:text></xc:version>
</xc:properties>
<xc:components>
<xc:vevent>
<xc:properties>
<xc:dtstart>
<xc:parameters>
<xc:tzid>US/Eastern<xc:tzid>
<xc:parameters>
<xc:date-time>20060104T100000</xc:date-time>
</xc:dtstart>
<xc:duration><xc:duration>PT1H</xc:duration></xc:duration>
<xc:summary>
<xc:text>Event #3</xc:text>
</xc:summary>
<xc:uid>
<xc:text>DC6C50A017428C5216A2F1CD@example.com</xc:text>
</xc:uid>
<xc:rrule>
<xc:recur>
<xc:freq>DAILY</xc:freq>
<xc:count>5</xc:count>
</xc:recur>
</xc:rrule>
</xc:properties>
</xc:vevent>
</xc:components>
</xc:vcalendar>
</xc:icalendar>
</C:calendar-data>
</D:prop>
<D:status>HTTP/1.1 200 OK</D:status>
</D:propstat>
</D:response>
</D:multistatus>